From 7f4f85a70d645bff93230ab86c0276a5eb67c3bc Mon Sep 17 00:00:00 2001 From: Chen Baozi Date: Thu, 15 Aug 2013 21:19:48 +0800 Subject: [PATCH] xen/arm: Specific mapping for dom0 on OMAP5 platform Signed-off-by: Chen Baozi Acked-by: Ian Campbell --- xen/arch/arm/platforms/omap5.c | 31 +++++++++++++++++++++++++++ xen/include/asm-arm/platforms/omap5.h | 4 ++++ 2 files changed, 35 insertions(+) diff --git a/xen/arch/arm/platforms/omap5.c b/xen/arch/arm/platforms/omap5.c index 402dddd6be..c10cf00006 100644 --- a/xen/arch/arm/platforms/omap5.c +++ b/xen/arch/arm/platforms/omap5.c @@ -17,6 +17,7 @@ * GNU General Public License for more details. */ +#include #include #include #include @@ -96,6 +97,34 @@ static int omap5_init_time(void) return 0; } +/* Additional mappings for dom0 (not in the DTS) */ +static int omap5_specific_mapping(struct domain *d) +{ + /* Map the PRM module */ + map_mmio_regions(d, OMAP5_PRM_BASE, OMAP5_PRM_BASE + (PAGE_SIZE * 2) - 1, + OMAP5_PRM_BASE); + + /* Map the PRM_MPU */ + map_mmio_regions(d, OMAP5_PRCM_MPU_BASE, + OMAP5_PRCM_MPU_BASE + PAGE_SIZE - 1, + OMAP5_PRCM_MPU_BASE); + + /* Map the Wakeup Gen */ + map_mmio_regions(d, OMAP5_WKUPGEN_BASE, OMAP5_WKUPGEN_BASE + PAGE_SIZE - 1, + OMAP5_WKUPGEN_BASE); + + /* Map the on-chip SRAM */ + map_mmio_regions(d, OMAP5_SRAM_PA, OMAP5_SRAM_PA + (PAGE_SIZE * 32) - 1, + OMAP5_SRAM_PA); + + return 0; +} + +static uint32_t omap5_quirks(void) +{ + return PLATFORM_QUIRK_DOM0_MAPPING_11; +} + static const char const *omap5_dt_compat[] __initdata = { "ti,omap5", @@ -105,6 +134,8 @@ static const char const *omap5_dt_compat[] __initdata = PLATFORM_START(omap5, "TI OMAP5") .compatible = omap5_dt_compat, .init_time = omap5_init_time, + .specific_mapping = omap5_specific_mapping, + .quirks = omap5_quirks, PLATFORM_END /* diff --git a/xen/include/asm-arm/platforms/omap5.h b/xen/include/asm-arm/platforms/omap5.h index 092f340fed..dd8c6ca733 100644 --- a/xen/include/asm-arm/platforms/omap5.h +++ b/xen/include/asm-arm/platforms/omap5.h @@ -13,6 +13,10 @@ #define OMAP5_CM_CLKSEL_SYS 0x10 #define SYS_CLKSEL_MASK 0xfffffff8 +#define OMAP5_PRCM_MPU_BASE 0x48243000 +#define OMAP5_WKUPGEN_BASE 0x48281000 +#define OMAP5_SRAM_PA 0x40300000 + #endif /* __ASM_ARM_PLATFORMS_OMAP5_H */ /* -- 2.30.2